שמענו כאן על המון פריימוורקים שונים, ואני אספר לכם על עוד פריימוורק אחד, לא מוכר, אך עוצמתי עם קהילה טובה בשם Laravel.
על פריימוורקים כולנו שמענו, אך לא כולנו ניסינו. באתר הרבה מדובר על הפריימוורקים Yii, Codeigiter ועוד, ואני בטוח שלא רובנו הבנו במיוחד איך להשתמש בהם. יש המון פריימוורקים גדולים ומוכרים, אך רובם קשים למתחילים והרבה גורמים לפחד מפריימוורקים בגללם. אספר לכם כאן על Laravel ולמה הוא כדאי.
מה זה Laravel?
בציטוט מהאתר הראשי:
Laravel is a clean and classy framework for PHP web development. Freeing you from spaghetti code, it helps you create wonderful applications, using simple, expressive syntax. Development should be a creative experience that you enjoy, not something that is painful. Enjoy the fresh air!
Laravel הוא פריימוורק שמתאפיין בכמה דברים חשובים - פשוט, אלגנטי ומתועד היטב.
הפריימוורק לעומת הרבה פריימוורקים אחרים, פשוט להבנה - בין אם ניסיתם בעבר פריימוורקים או לא ניסיתם, את הסינטקס של laravel לא יהיה לכם קשה להבין.
אלגנטי - מהרגע שהורדתם ועד לתחילת הפיתוח - 0 התעסקות בקונפיגורציה. הוא לא דורש ממכם להתעסק בכלום, וכל מה שתצטרכו להתחלה זה רק להגדיר את פרטי המסד.
מתועד היטב - לפריימוורק יש דוקומנטציה מעולה ותיעוד על כל מחלקה בAPI שלהם.
על הפריימוורק
הפריימוורק עצמו התחיל את דרכו שם ב2011, כאשר רק מפתח אחד פיתח אותו. הפריימוורק מימש את כל הכלים הדרושים - MVC Pattern, Active Record, Auth Model, Unit testing ועוד פיצ'ים רבים.
בתחילת דרכו הוא גם לא הכיל בתוכו קונטרולרים, מכיוון שיש לו מערכת routing עוצמתית, אשר הורידה את הצורך בקונטרולרים. כיום גם קונטרולרים קיימים, ואפשר ואפילו רצוי לשלב בינהם. מערכת הרואוטינג של laravel מיישמת את הסינטקס של סינטרה, והיא מאוד פשוטה לעבודה.
דוגמא לאיך נוכל להדפיס Hello (Name) בקישור ספציפי:
<?php
Route::get("hello/(:any)", function($name){
echo "Hello, $name";
});
Route::get("hello/(:any)", function($name){
echo "Hello, $name";
});
ואם נכנס עכשיו לקישור /hello/Michael נראה בפלט: "Hello, Michael".
באנדלים
לאחר שיצא Laravel 3, איתו יצא אפשרות שגרמה לפריימוורק להיות אפילו יותר מעולה ממה שהוא היה קודם - Bundles.
מה זה באנדלס?
Bundles are to Laravel as PEAR is to PHP.
באנדל זה מקבץ של קוד שמוכנס לתוך מקום בפני עצמו. באנדל יכול להכיל קונפיגים משלו, מודלים, קונטרולרים, routes ועוד. באנדל משמש לכמה דברים, בעיקר לDRY - לא לכתוב מחדש אותו קוד.
אם כתבנו סיפרייה כלשהי, פלאגין וכו' אפשר להכניס אותו לבאנדל, למעשה, אפשר לכתוב אתר שלם בתוך באנדל, וככה נוכל לממש סטרטקורה של multiple sites או אחרת, לפתח את הפרונטאנד (האתר עצמו) והבאקאנד (האדמין, לדוגמא) בצורה מסודרת ומאורגנת.
בקהילה של Laravel מפורסמים מאות באנדלים מוכנים לשימוש, ואנחנו רק צריכים להוריד אותה ולשים!
Artisan
אם עדיין לא התרשמתם מהיכולות של Laravel, אז הכירו את Artisan - הCLI של הפריימוורק. הוא מסוגל לבצע המון דברים, החל מmigrations של טבלאות, יצירת משימות, הרצת unit testing, התקנת באנדלים ועוד!
בנוסף, קיים באנדל בשם bob, אשר מציע לנו עוד אפשרויות לארטיסן - יצירת קונטרולרים, מודלים, unit test ועוד אפשרויות רבות.
Blade
אם כל זה עדיין לא הספיק לכם, הפריימוורק גם מכיל מנוע templating משלו בשם Blade.
כל מה שצריך בשביל לעבוד איתו, זה לעשות את הסיומת של הקובץ תצוגה שלכם כ.blade.php ואתם מוכנים לעבודה!
הסינטקס של בלייד פשוט, לא דורש יותר מדי למידה והוא הופך את החיים רק ליותר קלים.
קודים לדוגמא תוכלו למצוא בדוקס של laravel בקישור שצוין מקודם.
לסיכום
קיימים אין ספור פריימוורקים שם בחוץ, כל אחד מציע פי'צרים מעולים שגורמים לו להיות יחודי מפני האחרים, וLaravel עשו פה עבודה טובה. הסינטקס פשוט, הדוקו מעולה, הפריימוורק משתמש בPHP 5.3 - חוויה מושלמת. הבאנדלים חוסכים כתיבת קוד ברוב הפעמים, והקהילה גדולה ועוזרת!
אם עדיין לא יצא לכם לגעת בפריימוורק כלשהו, או אתם מחפשים פריימוורק אחר - זהו הפריימוורק שאתם מחפשים!
בהמשך יכתבו עוד מאמרים על התקנה של הפריימוורק ותחילת העבודה, ועבודה עם הכלים שהוא מציע.
עד אז, מציע לעבוד על הדוקו שלהם - פשוט ומובן לכולם, ובנוסף יש ספר מעולה שנקרא Code Happy שנכתב על ידי
אחד מהמפתחי ליבה של הפריימוורק, שמסביר מעולה איך מתחילים ועל הפריימוורק יותר במפורט :)
תגובות לכתבה:
אחלה פריימוורק, מביא כמה פי'צרים מעניינים מ .net
שמשם המפתח הגיע אגב. הדוקומנטציה בהחלט ברורה וקריאה, אבל צורת ה-routing די מפריעה לי.
אני לא רואה שום סיבה לדחוף את הקוד של כל הקונטרולרים שלי לתוך קובץ אחד שבכלל נמצא בתיקיית ה-config ולכן אני בכלל לא רואה את הפיצ'ר הזה בתור פי'צר אלה בתור איזה משהו מוזר.
מצד שני זה הפריימוורק הראשון שמביא איתו IoC ו DI עם חלוקה של המודל לשלושה חלקים
ווכל הכבוד ל zf2 שהעתיקו את זה. נחכה ששאר הפריימוורקים יעתיקו גם :)
בנוסף, זה שהכל שם סטטי בכלל משגע. לא ברור למה פשוט לא להכניס פונקציות פשוטות לניימספייסים.
כאילו במקומות מסוימים ה-OOP משוך באוזניים. כנראה שזה נובע ממקורו ב .NET :) וזה לא הפריימוורק היחיד מלא דברים סטטייים. גם YII1. רק שהיא לא כוונה מלכתחילה ל 5.3 עם ניימספייסים.
בכל השאר באמת פריימוורק מעניין :)
תודה רבה על המאמר. מחכה בקוצר רוח להמשך. :)
תודה ! אני אשמח לנסות אותו :)
מחכה כבר למדריך עליו :) בינתיים ניתן מבט באתר שלהם , נתחיל ללמוד משם ...
מדריכי וידיאו : http://www.screenr.com/user/laravel .